package org.example.entity;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.DateFormat;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;

// Reindex API重建索引

@Data
@Document(indexName = "sku")
public class Sku {

    @Id
    private String id;

    /**
     * 后台类目id
     */
    @Field(type = FieldType.Integer)
    private Integer categoryId;

    /**
     * 热度字段
     */
    @Field(type = FieldType.Long)
    private Long hotScore;

    /**
     * 高精度价格字段（使用 scaled_float） scalingFactor = 100 表示保留 2 位小数
     * 实际存储值 = 原始值 * 100（如 99.99 存储为 9999）
     */
    @Field(type = FieldType.Scaled_Float, scalingFactor = 100)
    private BigDecimal price;

    /**
     * 日期字段
     */
    @Field(type = FieldType.Date, format = DateFormat.date_hour_minute_second)
    private Date shelfTime;

    /**
     * 映射为 Elasticsearch 的 object 类型
     */
    @Field(type = FieldType.Object)
    private Map<String, Object> attribute;

}
